import math


def format_angle(degrees, minutes=0):
    """将角度格式化为度分形式"""
    return f"{degrees}°{minutes:02d}'"


print("目标角度    实际角度    cos(角度)    cos²(角度)")
print("-" * 50)

# 从90度到0度，步长为-10度
for target_angle in range(90, -1, -10):
    # 计算目标角度及其前后1分的三个角度
    # 注意：对于90度，前1分是89°59'，后1分是90°01'
    # 对于0度，前1分是-0°01'，但我们将使用0°01'和0°00'和-0°01'
    angles = []

    if target_angle == 90:
        angles = [
            (89, 59),  # 前1分
            (90, 0),  # 目标角度
            (90, 1)  # 后1分
        ]
    elif target_angle == 0:
        angles = [
            (0, -1),  # 前1分，表示为0°-1'
            (0, 0),  # 目标角度
            (0, 1)  # 后1分
        ]
    else:
        angles = [
            (target_angle, -1),  # 前1分
            (target_angle, 0),  # 目标角度
            (target_angle, 1)  # 后1分
        ]

    for deg, min in angles:
        # 将度分转换为十进制度
        decimal_degrees = deg + min / 60.0

        # 将角度转换为弧度
        angle_rad = math.radians(decimal_degrees)

        # 计算cos值
        cos_value = math.cos(angle_rad)

        # 计算cos值的平方
        cos_squared = cos_value ** 2

        # 格式化输出
        target_str = format_angle(target_angle, 0)

        # 处理负分的情况
        if min < 0:
            actual_str = f"{deg}°{-min:02d}'(-)"
        else:
            actual_str = format_angle(deg, min)

        print(f"{target_str:^10} {actual_str:^12} {cos_value:^12.6f} {cos_squared:^12.6f}")

    # 在每个目标角度组之间添加空行
    if target_angle > 0:
        print()